package juego.enemigo;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import juego.control.Personaje;
import juego.entidades.Entidad;
import juego.graficos.ElementoGrafico;

import juego.niveles.Nivel;
import juego.powerups.Estrella;

public class Koopa extends Enemigo {
	protected int saltos;
	protected boolean colisionado=false;
	
	
	public Koopa (){
		this.valor=45;
		saltos=0;
	}
	
	
	
	
	
	
	public void colisionarEnemigo(Personaje mario, int x, int y,	JLabel jLabel1) {
	
		if (mario.esChiquito()){
			mario.setPuntaje(mario.getPuntaje()-this.valor);
			mario.setVidas(mario.getVidas()-1);
			mario.getVentanaPrincipal().actualizarVidas();
			mario.getVentanaPrincipal().actualizarPuntaje();
			mario.dibujarVidas();
		
		} else if (!mario.esChiquito()){
	
		 mario.hacerChiquito();
	}
		
	}
	public boolean fueColisionadoArriba(){
		return colisionado;
	}
	protected Object clone()
	{
		Koopa g = new Koopa();
		
		return g;
	}
	

	@Override
	public String soy() {
		return "Koopa";
	}
	public int saltos (){return saltos;}
	
	public void colisionarEnemigoDeArriba(Personaje mario, int x, int y,	JLabel jLabel1) {
		colisionado=true;
		Entidad vacio= (Entidad) mario.getLevel().getEntidad(x,y);
		if (vacio.hayMalos() && (!vacio.nombreEntidad().equals("piedra rompible"))){
		this.saltos+=1;
		if (saltos==2){
			vacio= (Entidad) mario.getLevel().getEntidad(x,y);
			vacio.getMalo();
			destruirMovimiento();
			mario.setPuntaje(mario.getPuntaje()+90);
		 	mario.getVentanaPrincipal().actualizarPuntaje();

		}

		}
	
		
		
		}
	@Override
	public void crearMovimiento(Personaje mario,Nivel level, JLabel j, int xM, int yM, Entidad contenedora) {
		movK=new HiloKoopa(mario,level,j,xM,yM,contenedora);
		
	}
	
	public void eliminarEnemigo(Personaje mario, int x, int y,	JLabel jLabel1) {
		
		
		Entidad vacio= (Entidad) mario.getLevel().getEntidad(x,y);
		if (vacio.hayMalos()){
		jLabel1.remove(vacio.getGrafico());
		vacio.getMalo();
		destruirMovimiento();
	 	vacio.setGrafico(new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/powerups/vacio/vacio_transparente.png"))));
		vacio.getGrafico().setLocation(y*32, x*32);
		jLabel1.add(vacio.getGrafico());
		jLabel1.repaint();
		mario.setPuntaje(mario.getPuntaje()+60);
	 	mario.getVentanaPrincipal().actualizarPuntaje();
		movK.stop();

		}
		}


	public  void iniciarMovimiento(){
		if (movK!=null) movK.start();
	}

	public void detenerMovimiento(){
		if (movK!=null) movK.stop(); 
	}


	public void atacarMario(Personaje mario,int x, int y) {
	
	if ((mario.miCaract().dameXtuya()==x)&&(mario.miCaract().dameYtuya()==y)){
		
		if (mario.esChiquito()){
			
			mario.setPuntaje(mario.getPuntaje()-this.valor);
		 	mario.setVidas(mario.getVidas()-1);
		 	mario.getVentanaPrincipal().actualizarVidas();
		 	mario.getVentanaPrincipal().actualizarPuntaje();
		 	mario.dibujarVidas();
	
         	}
		else if (!mario.esChiquito()){
			
			mario.hacerChiquito();
		}
	
	}

}


	public void destruirMovimiento() {
		if (movK!=null){
			movK.morite();
		
	}
	
}








	

}
